package com.mall.client.server.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.mall.common.core.annotation.Excel;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @ClassName Coupon
 * @Description 描述
 * @Author Qiu Feng
 * @Date 2025/2/17 10:09
 */
@Data
public class Coupon {

    /** 优惠券主键自增 */
    private Long id;

    private Long[] ids;

    /** 优惠券名称 */
    @Excel(name = "优惠券名称")
    private String couponName;

    /** 发放总量 */
    @Excel(name = "发放总量")
    private Long grantNum;

    /** 使用门槛 */
    @Excel(name = "使用门槛")
    private BigDecimal useThreshold;

    /** 优惠券状态（1-未开始  2-进行中  3-已失效  4-已结束） */
    @Excel(name = "优惠券状态", readConverterExp = "1=-未开始,2=-进行中,3=-已失效,4=-已结束")
    private Long couponStatus;

    /** 优惠券类型(1-满减卷 2-折扣卷 3-随机金额卷) */
    @Excel(name = "优惠券类型(1-满减卷 2-折扣卷 3-随机金额卷)")
    private Long couponType;

    /** 减多少 */
    @Excel(name = "减多少")
    private BigDecimal minusPrice;

    /** 折扣多少 */
    @Excel(name = "折扣多少")
    private BigDecimal discountNum;

    /** 最多优惠 */
    @Excel(name = "最多优惠")
    private BigDecimal maxDiscount;

    /** 最小价格 */
    @Excel(name = "最小价格")
    private BigDecimal minimumPrice;

    /** 最大价格 */
    @Excel(name = "最大价格")
    private BigDecimal maximumPrice;

    /** 优惠总金额 */
    @Excel(name = "优惠总金额")
    private BigDecimal discountPrice;

    /** 适用商品（0-全部可用  1-指定商品可用   2-指定分类可用  ） */
    @Excel(name = "适用商品", readConverterExp = "0=-全部可用,1=-指定商品可用,2=-指定分类可用")
    private Long applyStatus;

    /** 审核（0-未审核  1-已审核） */
    @Excel(name = "审核", readConverterExp = "0=-未审核,1=-已审核")
    private Long examineStatus;

    /** 是否推荐（0-false不推荐  1-true推荐） */
    @Excel(name = "是否推荐", readConverterExp = "0=-false不推荐,1=-true推荐")
    private Integer recommendStatus;

    /** 可以领取开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "可以领取开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date enableStartTime;

    /** 可以领取结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "可以领取结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date enableEndTime;

    /** 固定使用开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "固定使用开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date effectiveStart;

    /** 固定使用结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "固定使用结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date effectiveEnd;

    /** 商家id */
    @Excel(name = "商家id")
    private Long merchantId;

}
